cee14d1ee30ec5edb469ea9b55dec83084f01779,plugins/structuralsearch/source/com/intellij/structuralsearch/plugin/replace/impl/ReplacerImpl.java,ReplacerImpl,testReplace,#String#String#String#ReplaceOptions#boolean#,47

Before Change


      PsiElement lastElement = elements[elements.length-1];
      PsiElement parent = firstElement.getParent();

      this.options.getMatchOptions().setScope(
        new LocalSearchScope(parent)
      );

      this.options.getMatchOptions().setResultIsContextMatch(true);
      CollectingMatchResultSink sink = new CollectingMatchResultSink();

After Change


    try {
      PsiElement firstElement, lastElement, parent;

      if (options.getMatchOptions().getScope() == null) {
        PsiElement[] elements = MatcherImplUtil.createTreeFromText(
          in,
          filePattern ? MatcherImplUtil.TreeContext.File : MatcherImplUtil.TreeContext.Block,
          this.options.getMatchOptions().getFileType(),
          project
        );

        firstElement = elements[0];
        lastElement = elements[elements.length-1];
        parent = firstElement.getParent();

        this.options.getMatchOptions().setScope(
          new LocalSearchScope(parent)
        );
      } else {
        parent = ((LocalSearchScope)options.getMatchOptions().getScope()).getScope()[0];
        firstElement = parent.getFirstChild();